9-dars. Struct and Union
Darsning Maqsadlari:
- Struktura va union tushunchalarini tushunish.
- Ularning e'lon qilinishi va hotiradan joy ajratilishi haqida bilish.
- Har bir turdagi ma'lumotlar tuzilmalari (struktura va union) o'rtasidagi farqni o'rganish.
Ma'lumot Tizimlari
Dasturlashda biz ma'lumotlarni saqlash va boshqarish uchun turli xil tuzilmalarni ishlatamiz. Eng ko'p ishlatiladigan tuzilmalar — bu struktura va union. Ikkisi ham bir yoki bir nechta o'zgaruvchilarni bir joyda saqlash imkonini beradi, ammo ular turli yo'llar bilan ishlaydi.
Struktura
Struktura — bu bir yoki bir nechta o'zgaruvchilarni (maydonlar) birlashtiruvchi ma'lumot tuzilmasi. Har bir maydon o'z turiga ega va alohida joy ajratadi.
E'lon Qilish
Strukturani e'lon qilish sintaksisi quyidagicha:
struct Talaba {
char ism[50];
int yosh;
float ball;
};
Hotiradan Joy Ajratilishi
Struktura uchun joy ajratilganda, har bir maydon o'z o'lchoviga ko'ra joy oladi. Misol uchun, char 1 bayt, int 4 bayt, float esa 4 bayt joy oladi. Yuqoridagi misolda strukturaning umumiy hajmi quyidagicha bo'ladi:
char ism[50]- 50 baytint yosh- 4 baytfloat ball- 4 bayt
Umumiy hajm = 50 + 4 + 4 = 58 bayt
Foydalanish Usuli
Strukturani yaratganingizdan so'ng, undan foydalanish uchun yangi o'zgaruvchi e'lon qilinadi:
struct Talaba talaba1;
Endi biz talaba1 o'zgaruvchisi orqali strukturaga kirishimiz mumkin:
strcpy(talaba1.ism, "Ali");
talaba1.yosh = 20;
talaba1.ball = 85.5;
Struktura ma'lumotlarni bir joyda saqlashga yordam beradi va ularni boshqarishni osonlashtiradi.
Union
Union — bu ham bir nechta o'zgaruvchilarni bir joyda saqlash imkonini beruvchi ma'lumot tuzilmasi, lekin bu erda faqat bir vaqtning o'zida bitta maydon ishlatiladi. Yani, union o'zgaruvchilarining har biri uchun joy ajratmaydi, faqat eng katta maydon uchun joy ajratadi.
E'lon Qilish
Unionni e'lon qilish sintaksisi quyidagicha:
union Malumot {
int raqam;
char harf;
float ball;
};
Hotiradan Joy Ajratilishi
Unionda joy ajratilishi quyidagicha:
int raqam- 4 baytchar harf- 1 baytfloat ball- 4 bayt
Umumiy hajm = 4 bayt (eng katta maydon).
Foydalanish Usuli
Uniondan foydalanish quyidagicha:
union Malumot malumot1;
malumot1.raqam = 10;
Endi ma'lumot1.raqam maydoni ishlatiladi. Agar biz ma'lumot1.harf ga qiymat beradigan bo'lsak, ma'lumot1.raqam ma'lumoti yo'qoladi.
Union — ma'lumotlar turini bir vaqtning o'zida saqlash uchun samarali, ammo ehtiyotkorlikni talab qiladigan tuzilma.
Struktura va Union o'rtasidagi Farq
| Xususiyat | Struktura | Union |
|---|---|---|
| Hotira ajratilishi | Har bir maydon uchun alohida joy | Faqat eng katta maydon uchun joy |
| Bir vaqtning o'zida foydalanish | Barcha maydonlarni ishlatish mumkin | Faqat bitta maydonni ishlatish mumkin |
| Ma'lumotlarni saqlash | Ma'lumotlarni saqlash uchun qulay | Tezkor, ammo ehtiyotkorlik kerak |
Xulosa
Struktura va union dasturlashda muhim ma'lumot tuzilmalari hisoblanadi. Struktura bir vaqtning o'zida bir nechta maydonlarni saqlash imkonini beradi, union esa faqat bitta maydonni saqlash imkoniyatiga ega. Ularni to'g'ri ishlatish dasturiy ta'minotning samaradorligini oshirishga yordam beradi.
Savollar:
- Struktura va union o'rtasidagi asosiy farq nima?
- Struktura qanday qilib bir vaqtning o'zida bir nechta maydonni saqlaydi?
- Unionda joy ajratilishi qanday amalga oshiriladi?
- Qachon struktura, qachon esa union ishlatish kerak?